package com.xk._04regEx;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @description: 演示 定位符 的使用
 * @author: xu
 * @date: 2022/11/1 13:45
 */
public class RegExp_06 {
    public static void main(String[] args) {
        String content = "hanshunping sphan nnhanu";

        // 匹配 以至少1个数字字符开头，后接任意个小写字母的字符串 --> ^[0-9]+[a-z]*
        // 匹配 以至少1个数字字符开头，必须以至少一个小写字母结束 --> ^[0-9]+[a-z]+$
        // 匹配 以至少1个数字字符开头，必须以至少一个小写字母结束，中间必须以 - 连接 --> ^[0-9]+\\-[a-z]+$
        // 匹配 边界的 han [这里的边界是指：被匹配的字符串最后，也可以是空格分隔的子字符串的后面] --> han\\b
        // 匹配不是 边界的 han [和\\b的含义刚好相反] --> han\\B
        String regStr = "han\\b";

        Pattern pattern = Pattern.compile(regStr);
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()){
            System.out.println("找到：" + matcher.group(0));
        }
    }
    /*
    * 小结：
    * '^' : 指定目标字符串的起始字符
    * '$' : 指定目标字符串的结束字符
    * \\b : 匹配目标字符串的边界  [边界：被匹配的字符串最后，也可以是空格分隔的子字符串的后面]
    * \\B : 匹配目标字符串的非边界 [非边界：不是被匹配的字符串最后，也不是空格分隔的子字符串的后面]
    * */
}
